Micron Document
Fox's Git Mirrors


Displaying Raw • Download

bindings/java/Makefile 83609bcb589eb3cfc35b98ecc0b3327b2ae99d77 (83609bcb) Text, 1.39 KB

# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2024-2026 Quad4.io

ROOT := ../..
BIN := $(ROOT)/bin
RNS_LIB := $(BIN)/librns.so
ABS_BIN := $(abspath $(BIN))
ABS_JAVA := $(abspath .)
JAVAC ?= javac
JAVA ?= java
JNA_VER := 5.17.0
JNA_JAR := $(ABS_JAVA)/lib/jna.jar
JNA_URL := https://repo1.maven.org/maven2/net/java/dev/jna/jna/$(JNA_VER)/jna-$(JNA_VER).jar
OUT := $(ABS_JAVA)/out
CP := $(OUT):$(JNA_JAR)

SRC := $(shell find src -name '*.java' | sort)
TEST_SRC := tests/SmokeTest.java

.PHONY: all test check smoke examples clean librns classes jna

all: test

librns: $(RNS_LIB)

$(RNS_LIB):
cd $(ROOT) && task build-librns

jna: $(JNA_JAR)

$(JNA_JAR):
mkdir -p $(ABS_JAVA)/lib
curl -fsSL -o "$(ABS_JAVA)/lib/jna-$(JNA_VER).jar" "$(JNA_URL)"
ln -sfn "jna-$(JNA_VER).jar" "$(JNA_JAR)"

classes: $(JNA_JAR)
mkdir -p $(OUT)
$(JAVAC) -encoding UTF-8 -d $(OUT) -cp $(JNA_JAR) $(SRC)

test: $(RNS_LIB) classes
$(JAVAC) -encoding UTF-8 -d $(OUT) -cp $(CP) $(TEST_SRC)
LIBRARY_PATH="$(ABS_BIN):$${LIBRARY_PATH:-}" \\
LD_LIBRARY_PATH="$(ABS_BIN):$${LD_LIBRARY_PATH:-}" \\
RNS_LIB_PATH="$(ABS_BIN)/librns.so" \\
RNS_ROOT="$(abspath $(ROOT))" \\
$(JAVA) -cp $(CP) -Djna.library.path="$(ABS_BIN)" io.quad4.rns.SmokeTest

check: test

smoke: test

examples: $(RNS_LIB) classes
$(MAKE) -C examples/smoke
$(MAKE) -C examples/page-fetch
$(MAKE) -C examples/pageserver

clean:
rm -rf $(OUT)

Served by rngit 1.5.4 - Generated in 0.03s